<?php
/**
 * Created by PhpStorm.
 * User: LG
 * Date: 2017/8/28
 * Time: 9:28
 */

namespace app\common\model;

use think\Db;
use think\Model;

class RenewRepairRecord extends Model
{
    protected $db;

    public function __construct()
    {
        parent::__construct();
        $this->db = Db::name("ForCoreRecord");
    }

    /**
     * 增加一条数据
     * @author ligang
     * @param array     $data 添加的数据，一维数组
     * @return bool
     */
    public function insertOne($data)
    {
        if (!is_array($data)){
            return "Error：参数必须是数组和一维数组";
        }
        $res = $this->db->insert($data);
        if ($res !== 1){
            return false;
        }
        return true;
    }

    /**
     * 按条件查询一条数据(不查询逻辑删除的数据)
     * @author ligang
     * @param array     $where 查询条件,key对应表字段，value对应条件值，键值对以AND方式查询，一维数组
     * @param array     $whereOr 查询条件,key对应表字段，value对应条件值，键值对以OR方式查询，一维数组
     * @return array
     */
    public function selectOne($where=array(),$whereOr=array())
    {
        $res =  $this->db->where($where)->whereOr($whereOr)->cache(true)->where('is_delete',0)->find();
        return $res;
    }

    /**
     * 条件查询全部数据(不查询逻辑删除的数据)
     * @author ligang
     * @param array     $where      AND查询条件
     * @param array     $whereOr    OR查询条件
     * @return array|bool
     */
    public function selectWhereAll($where=array(),$whereOr=array())
    {
        return $this->db->where($where)->whereOr($whereOr)->cache(true)->where('is_delete',0)->select();
    }

    /**
     * 查询全部逻辑删除数据
     * @author ligang
     * @return array|bool
     */
    public function selectIsDelete()
    {
        return $this->db->where('is_delete',1)->select();
    }

    /**
     * 按renew_repair_record_id主键删除一条数据（逻辑删除）
     * @author ligang
     * @param int     $id 删除条件
     * @return int  返回影响数据的条数，没修改任何数据字段返回 0
     */
    public function deleteOne($id)
    {
        return $this->db->where('renew_repair_record_id',intval($id))->setField('is_delete',1);
    }

    /**
     * 分页查询数据(不查询逻辑删除的数据)
     * @author ligang
     * @param array     $where                       AND查询条件
     * @param array     $whereOr                     OR查询条件
     * @return array
     * @return string|int    $data['currentPage']    获取当前页
     * @return string|int    $data['listRows']       每页显示数目
     * @return array         $data['data']           数据
     */
    public function selectPage($where=array(),$whereOr=array())
    {
        //获取分页配置
        $listRows = intval(config('pagesize'));
        //获取数据（对象）
        $page = $this->db->where($where)->whereOr($whereOr)->cache(true)->where('is_delete',0)->paginate($listRows);
        $data = array();
        //获取当前页
        $data['currentPage'] = $page->currentPage();
        //总页数
        $data['lastPage'] = $page->lastPage();
        //每页显示数目
        $data['listRows'] = $page->listRows();
        $data['data'] = array();
        //分页显示
        $data['page'] =  $page->render();
        //循环对象获取数据
        foreach ($page as $key=>$value){
            $data['data'][$key]=$value;
        }
        return $data;
    }

    /**
     * 更新数据
     * @author ligang
     * @param array     $where 查询条件(更新的数据必须携带主键)，一维数组
     * @param array     $data  更新的数据，一维数组
     * @return int      返回影响数据的条数，没修改任何数据返回 0
     */
    public function updateOne($where,$data=array())
    {
        if (!$this->checkArray($where,1)){
            return "Error：参数必须是数组和一维数组";
        }
        if (array_key_exists('renew_repair_record_id',$where) && empty($data)){
            return $this->db->update($where);
        }else{
            return $this->db->where($where)->update($data);
        }
    }

    /**
     * @param $where
     * @param $data
     * @return int|string
     *      根据条件修改一条数据
     */
    public function modifyOne($where,$data)
    {
        return $this->db->where($where)->update($data);
    }

    /**
     * @param $data
     *    添加一条数据
     */
    public function add($data)
    {
       $result = Db::name('renew_repair_record')->insert($data);
       return $result;
    }

}